]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
[panel] Hide application menu in overview
authorFlorian Müllner <fmuellner@src.gnome.org>
Wed, 12 May 2010 21:30:14 +0000 (23:30 +0200)
committerFlorian Müllner <fmuellner@src.gnome.org>
Wed, 26 May 2010 12:06:53 +0000 (14:06 +0200)
The activities overview is not a place where we expect users to
interact with a specific application, so showing the application
menu there is misleading.

https://bugzilla.gnome.org/show_bug.cgi?id=618479

js/ui/panel.js

index 0e521486ea29363d3929b3958e4696c78012fcbf..58e1d5f3ce85dbd7d0eb018f7d6fdd6673125dd8 100644 (file)
@@ -681,11 +681,14 @@ AppMenuButton.prototype = {
         this.menu.addMenuItem(this._quitMenu);
         this._quitMenu.connect('activate', Lang.bind(this, this._onQuit));
 
+        this._visible = !Main.overview.visible;
+        if (!this._visible)
+            this.hide();
         Main.overview.connect('hiding', Lang.bind(this, function () {
-            this.actor.opacity = 255;
+            this.show();
         }));
         Main.overview.connect('showing', Lang.bind(this, function () {
-            this.actor.opacity = 192;
+            this.hide();
         }));
 
         let tracker = Shell.WindowTracker.get_default();
@@ -699,6 +702,36 @@ AppMenuButton.prototype = {
         this._sync();
     },
 
+    show: function() {
+        if (this._visible)
+            return;
+
+        this.actor.show();
+        Tweener.addTween(this.actor,
+                         { opacity: 255,
+                           time: Overview.ANIMATION_TIME,
+                           transition: 'easeOutQuad',
+                           onComplete: function() {
+                               this._visible = true;
+                           },
+                           onCompleteScope: this });
+    },
+
+    hide: function() {
+        if (!this._visible)
+            return;
+
+        Tweener.addTween(this.actor,
+                         { opacity: 0,
+                           time: Overview.ANIMATION_TIME,
+                           transition: 'easeOutQuad',
+                           onComplete: function() {
+                               this.actor.hide();
+                               this._visible = false;
+                           },
+                           onCompleteScope: this });
+    },
+
     _getContentPreferredWidth: function(actor, forHeight, alloc) {
         let [minSize, naturalSize] = this._iconBox.get_preferred_width(forHeight);
         alloc.min_size = minSize;